/**
 * 
 */
package tau.adx.common;

import lombok.Data;

/**
 * A <b>singleton</b> general utility class for the AdX system.
 * 
 * @author greenwald
 * 
 */
@Data
public class AdXAdmin {

	/**
	 * Private constructor.
	 * 
	 * @param adxConstants
	 *            {@link AdxConstants}.
	 */
	private AdXAdmin(AdxConstants adxConstants) {
		this.adxConstants = adxConstants;
	}

	/**
	 * Initializes the singleton.
	 * 
	 * @param adxConstants
	 *            {@link AdxConstants}.
	 */
	public static void init(AdxConstants adxConstants) {
		adXAdmin = new AdXAdmin(adxConstants);
	}

	/**
	 * @return An instance of the {@link AdXAdmin}.
	 */
	public static AdXAdmin getInstance() {
		return adXAdmin;
	}

	/**
	 * The {@link AdXAdmin} singleton
	 */
	private static AdXAdmin adXAdmin;

	/**
	 * An instance of the {@link AdxConstants}
	 */
	private AdxConstants adxConstants;

}
